// pages/cart/cart.js
const { isLogin,_toLogin  } = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    carts:[
      {
        _id:"dwdwdwd",
        NAME:"商品a",
        PRESENT_PRICE:12,
        isChecked:true,
        IMAGE1:"http://images.baixingliangfan.cn/shopGoodsImg/20180415/20180415122256_2373.jpg",
        num:1
      },
      {
        _id:"dwdhwidjwoidwdwd",
        NAME:"商品b",
        PRESENT_PRICE:20,
        isChecked:true,
        IMAGE1:"http://images.baixingliangfan.cn/shopGoodsImg/20180415/20180415122256_2373.jpg",
        num:4
      }
      
    ],
      total:1223,
      isAllChecked:true,
  },
  add(e){
    // 件数加
    let {index} = e.target.dataset;
    let { carts } =  this.data;
    carts[index].num++;
    this.setData({
      carts
    })
    this.calcTotal();
  },
  singleChange(e){
    let {index} = e.target.dataset;
    let { carts } = this.data;
    carts[index].isChecked = !carts[index].isChecked;

    // 判断是不是所有的 商品都被选中
    let isAllChecked = carts.every(el=>el.isChecked);
    
    this.setData({
      isAllChecked
    })

    this.setData({
      carts
    });
    this.calcTotal();
  },
  allChecked(){
    // 点击全选
    this.setData({
      isAllChecked : !this.data.isAllChecked
    })
    let { carts } = this.data;

    carts.forEach(el=>{el.isChecked=this.data.isAllChecked})

    this.setData({
      carts
    })
    this.calcTotal()
  },
  reduce(e){
    // 件数减
    let {index} = e.target.dataset;
    let { carts } =  this.data;
    carts[index].num--;
    if(carts[index].num<=1){
      carts[index].num = 1;
    }
    this.setData({
      carts
    })
    this.calcTotal();
  },
  calcTotal(){
    /*
    所有选中商品的 价格*num 累加
    */ 
   let total = 0;
   let subCarts = this.data.carts.filter(item=>item.isChecked);
   subCarts.forEach(item=>{
     total+= item.num*item.PRESENT_PRICE
   })
   total = parseFloat(total.toFixed(2));
   this.setData({
     total
   })

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    if(!isLogin()){
      _toLogin();
    }
    this.calcTotal();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})